def isHappy(n: int) -> bool:
    # 定义一个集合，用于检测循环
    seen = set()

    while n != 1 and n not in seen:
        seen.add(n)
        # 计算下一个数，即每个位置上的数字的平方和
        n = sum(int(char) ** 2 for char in str(n))

    return n == 1


# 测试函数
print(isHappy(19))  # 应该输出 True，因为 19 -> 82 -> 68 -> 100 -> 1
print(isHappy(2))  # 应该输出 False，因为 2 -> 4 -> 16 -> 37 -> 58 -> 89，然后会循环

